// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Pin Up Casino – Azərbaycanda onlayn kazino Pin-Up – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Pin Up Casino – Azərbaycanda onlayn kazino Pin-Up

Azərbaycanda onlayn kazino sektoru getdikcə inkişaf edir və bu sahədə fəaliyyət göstərən bir çox platforma mövcuddur. Onlardan biri də Pin Up Casino adlanan məşhur onlayn kazinodur. Pin up giriş sayəsində istifadəçilərə geniş imkanlar açılır və onlar müxtəlif oyunlarla tanış ola bilirlər.

Pinup kazinosu Azərbaycanlı istifadəçilər arasında da populyarlıq qazanmışdır. Çünki, pin up saytı oyunsevərlərə yüksək keyfiyyətli xidmət təklif edir və onların ehtiyaclarına cavab verən bir çox imkanlar təqdim edir. Pinap az kimi axtarışlar edən istifadəçilər də bu platformaya daxil ola bilərlər və öz oyun təcrübələrini zənginləşdirə bilərlər.

Azərbaycanlı oyunsevərlər Pin Up Casinoya daxil olaraq, müxtəlif slot oyunları, kart oyunları və digər maraqlı oyunlarla tanış ola bilirlər. Pin up saytının təhlükəsizliyi və etibarlılığı da istifadəçilərə təminat verir. Belə ki, saytın müasir təhlükəsizlik texnologiyaları ilə təchiz olunması, istifadəçilərin məlumatlarının və pullarının qorunması üçün zəruri şərait yaradır.

Pin Up Casino-nın təqdim etdiyi oyunlar

Pin Up Casino Azərbaycanın ən məşhur onlayn kazinolardan biridir və pin up giriş sayəsində istifadəçilərə müxtəlif oyunlar təqdim edir. Pinap az saytında sizə slot maşınları, kart oyunları, rulet və digər çoxsaylı oyunlar mövcuddur. Pinup oyunlarından həzz alaraq, eyni zamanda pul qazana bilərsiniz.

Pin up saytında olan pin-up casino pin up oyunlarından əlavə, canlı kazino xidməti də mövcuddur. Bu xidmət sayəsində siz canlı krupiyerlərlə oynaya bilərsiniz və real vaxt rejimində qazanc əldə edə bilərsiniz. Pin up giriş etməklə, siz də bu oyunlardan istifadə edə bilərsiniz.

Pin Up Casino-nın təqdim etdiyi oyunlar arasında ən çox məşhur olanları slot maşınları, poker, blackjack və ruletdir. Bu oyunlar pin up saytında mövcuddur və siz pin up giriş edərək, onlardan istifadə edə bilərsiniz. Pinup oyunlarından həzz alaraq, eyni zamanda pul qazana bilərsiniz.

Pin Up Casino-da qeydiyyat və hesab açmaq

Pin Up Casino-da qeydiyyat və hesab açmaq çox asandır. Pin Up giriş səhifəsində “Qeydiyyat” düyməsini tıklayıb, lazım olan məlumatları daxil etmək kifayətdir. Pinup istifadəçiləri üçün təhlükəsiz və etibarlı bir mühit təmin edən Pin Up Casino, sizə öz hesabınızı asan şəkildə açmağa imkan verir.

Pin Up Casino-da hesab açmaq üçün sizə yalnız adı, soyadı, e-poçt ünvanı və şifrə tələb olunur. Hesabınızı açdıqdan sonra, siz Pin Up giriş səhifəsindən daxil ola bilərsiniz və Pin Up Casino-nun təklif etdiyi bütün xidmətlərdən istifadə edə bilərsiniz.

Pin Up Casino-da qeydiyyatdan keçdikdən sonra, sizə bir çox faydalı xidmətlər təklif olunur. Pinup sizə müxtəlif oyunlar, bonuslar və təkliflər təqdim edir. Pin Up Casino-da hesab açmaq və qeydiyyatdan keçmək sizin üçün ən yaxşı seçim olacaq.

Pin Up Casino-nın təhlükəsizlik və müştəri dəstəyi

Pin Up Casino, Azərbaycanda onlayn kazino sektorunda liderlərdən biridir. Pin Up Casino-nın təhlükəsizlik və müştəri dəstəyi sahəsində bir çox üstünlükləri var.

  • Təhlükəsizlik: Pin Up Casino, müştərilərinin şəxsi məlumatlarını və pul vəsaitlərini qorumaq üçün ən müasir təhlükəsizlik texnologiyalarından istifadə edir.
  • Müştəri dəstəyi: Pin Up Casino, müştərilərinə 24/7 müştəri dəstəyi xidməti təqdim edir. Müştərilər, pin up giriş sayfasında yer alan canlı dəstək bölməsindən istifadə edərək, pinap az və digər məsələlər barədə dəstək ala bilərlər.
  • Layihələndirilmə: Pin Up Casino, müştərilərinin istəklərini və təkliflərini nəzərə alaraq, xidmətlərini davamlı olaraq yaxşılaşdırır.

Pin Up Casino, təhlükəsizlik və müştəri dəstəyi sahəsində bir çox sertifikata və mükafata sahibdir. Pin Up Casino, müştərilərinin etimadını qazanmaq üçün davamlı olaraq çalışır.

  • Pin Up Casino, müştərilərinin şəxsi məlumatlarını qorumaq üçün ən müasir şifrləmə texnologiyalarından istifadə edir.
  • Pin Up Casino, müştərilərinə 24/7 müştəri dəstəyi xidməti təqdim edir.
  • Pin Up Casino, müştərilərinin istəklərini və təkliflərini nəzərə alaraq, xidmətlərini davamlı olaraq yaxşılaşdırır.
  • Pin Up Casino, Azərbaycanda onlayn kazino sektorunda liderlərdən biridir. Pin Up Casino, təhlükəsizlik və müştəri dəstəyi sahəsində bir çox üstünlükləri var. Pin Up Casino, müştərilərinin etimadını qazanmaq üçün davamlı olaraq çalışır.

    Pin Up Casino-da ödəniş və çıxarış üsulları

    Pin Up Casino-da oyunçuların əlçatanlığı üçün müxtəlif ödəniş və çıxarış üsulları təklif olunur. Pinup giriş etdikdən sonra, siz pin up casino-nun təklif etdiyi ödəniş üsullarından istifadə edərək hesabınıza pul köçürə bilərsiniz. Pin up casino-da ən çox istifadə olunan ödəniş üsulları arasında banka köçürmələri, kredit kartları, elektron pul kisələri və s. var.

    Ödəniş üsulları

    Pin up giriş etdikdən sonra, siz pin up casino-nun saytında yer alan “Ödənişlər” bölməsindən istifadə edərək hesabınıza pul köçürə bilərsiniz. Pin up casino-da ödənişlər üçün təklif olunan üsullar arasında Visa, Mastercard, Maestro, WebMoney və s. kimi məşhur ödəniş sistemləri var.

    Çıxarış üsulları

    Pin up casino-da qazandığınız məbləği çıxarmaq üçün də müxtəlif üsullar mövcuddur. Pin up casino-da çıxarışlar üçün təklif olunan üsullar arasında banka köçürmələri, kredit kartları, elektron pul kisələri və s. var. Pinup casino-da çıxarışlar üçün tələb olunan minimum məbləğ dəyişə bilər, buna görə də siz pin up casino-nun saytında yer alan “Çıxarışlar” bölməsindən ətraflı məlumat ala bilərsiniz.

    Design and Develop by Ovatheme